<?php

    $pageindex = 0;
    $prevpage = 'index.php';
    $mainpage = 'index.php';
    $returnbutton_action = 'goBack();';
    $nextbutton_action = 'goNext();';

    require_once(realpath(dirname(__FILE__).'/../../../globals.inc'));
    require_once(dirname(__FILE__).'/wizard.inc');

    $infomat = new infomatClass($mikron);

    class infomatClass
    {
        public function __construct(MikronClass $mikron)
        {
            $mikron->OperatingInstructions->AddFunction('INFOMAT_MAIN_BUTTONS', 'Infomat_MainButtons', $this);
            $mikron->OperatingInstructions->AddFunction('INFOMAT_XALERT', 'Infomat_xAlert', $this);
        }
        public function Infomat_xAlert($parameters)
        {
            require_once(dirname(__FILE__).'/x_alert.inc');
            global $nextpage;
            global $prevpage;
            ?>
            <script type="text/javascript">
            function goNext()
            {
                document.location.href = '<?php echo $nextpage;?>';
            }

            function goBack()
            {
                document.location.href = '<?php echo $prevpage;?>';
            }

            function m_main_down(obj,index)
            {
                x = -index*286;
                y = -96;
                obj.style.backgroundPosition = x+" "+y;
            }

            function m_main_up(obj,index)
            {
                x = -index*286;
                y = 0;
                obj.style.backgroundPosition = x+" "+y;
            }
            </script>
            <?php
        }
        function Infomat_MainButtons($parameters)
        {
            global $mainpage;
            global $returnbutton_action;
            global $nextbutton_action;
            ?>
            <table width="100%" cellspacing="0" cellpadding="0" border="0">
            <tr>
                <td align="left" width="*"><?php addMainButton(Array(2,3,4), 0, "location.href='".$mainpage."';");?></td>
                <td align="right" width="286"><?php addMainButton(Array(2,3), 1, $returnbutton_action);?></td>
                <td align="right" width="286"><?php addMainButton(Array(1,2,3), 2, $nextbutton_action);?></td>
            </tr>
            </table>
            <?php
        }
    }

	// настройка путей
	define('SM_ROOT', AppPath()); //$_SERVER['DOCUMENT_ROOT']."/infomat/");
	define('SM_TEMPLATE', constant('SM_ROOT').'/templates/main');
    $template_main = str_replace($_SERVER['DOCUMENT_ROOT'], null, realpath(dirname(__FILE__).'/templates/main'));
	define('SM_TEMPLATE_WWW', $template_main);

    // основные настройки инфомата
    define('SERVICE_HOST', 'http://192.168.20.2:8801/');
    define('SOAP_HOST', 'http://192.168.20.2:8801/InfomatService?WSDL');

    $jump_to_main_timer = 90; // in sec
    $codelength = 16; // длина номера идентификатора пациента
    $keupad_button_width = 96; // размер кнопки кейборда
    $schedule_days = 8; // количество дней выводимых в расписании
    $shedule_time_row = 8; // количество талончиков в одном столбце
    $datebegin = date('Y-m-d'); // дата начала вывода для расписания
    $dateend = date('Y-m-d', DateAdd('d', $schedule_days-1, strtotime($datebegin))); // дата последнего дня для расписания
    define('POST_PER_PAGE', 14); // количество врачей на одной странице

    require_once(dirname(__FILE__).'/xml.inc');
    require_once(dirname(__FILE__).'/soap.inc');

    if(isset($patientcode)&&($patientcode != '')&&($patient->errortext != ''))
    {
        header("Location: index.php?recode=".$patient->id."&errortext=".urlencode($patient->errortext));
        exit;
    }

    $help = Array();
    $help[1] = "Введите номер Вашей амбулаторной карты вручную, либо поднесите
                Вашу карточку к считывателю, расположенному на автомате.
                Для лучшей считываемости поднесите штрихкод на расстояние 10см от сканера";
    $help[2] = "Выберите специалиста, к которому Вы желаете записаться на прием."; //<br>Подсказка: Синие стрелочки позволят Вам перематывать список вверх/вниз.";
    $help[3] = "Выберите день, затем время, на которое Вы хотите записаться.";
    $help[4] = "";

    $editMode = isset($_COOKIE['editmode']) ? true: false;

    if(isset($_GET['showeditable']))
    {
        $editMode = true;  
    }

    if(isset($_GET['hideeditable']))
    {
        $editMode = false;  
    }

    if($editMode)
    {
      setcookie("editmode",$editMode, time()+(3600*24)*365, "/");
    }
    else
    {
        setcookie("editmode","", time()-(3600*24)*365, "/");
    }
    define('EDITMODE', $editMode);

    $curpage = $_SERVER["SCRIPT_NAME"];
    $pos = strpos($curpage, "/edit/")===false;
    define('INADMINCENTER', !$pos);

    $imisadmin = (isset($_COOKIE['im_is_admin']) && ($_COOKIE['im_is_admin'] == md5("I'm is administrator")));
    if(isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW']))
    {
      if((md5($_SERVER['PHP_AUTH_USER'])=="21232f297a57a5a743894a0e4a801fc3") && (md5($_SERVER['PHP_AUTH_PW'])=="174301bda0657419f4ef122e941cda97"))
      {
         define("ISADMIN", true);
      }else{define("ISADMIN", $imisadmin);}
    }else{define("ISADMIN", $imisadmin);}
    if(constant('ISADMIN'))
    {
      if(!isset($_COOKIE["im_is_admin"]))
      {
         setcookie("im_is_admin", md5("I'm is administrator"), time()+(3600*24)*365, "/");
      }
    }

    $mikron->Page->StartBody();

    function AppPath()
    {
        return dirname(__FILE__);
    }

    // Вывод главных больших кнопок 
    function addMainButton($visible_pages, $index, $action)
    {
        global $pageindex;
        $imagename = "btns_main";      
        if(in_array($pageindex, $visible_pages))
        {        
            $imagename = "btns_main";
            $x = -$index * 286;
            ?>
            <div
                on click = "xalert2('ПОДОЖДИТЕ...'); <?php echo str_replace("javascript:", "", $action);?>"
                onclick = "<?php echo $action;?>"
                onmousedown="javascript: m_main_down(this, '<?php echo $index;?>');"
                onmouseup="javascript: m_main_up(this, '<?php echo $index;?>');"
                onmouseout="javascript: m_main_up(this, '<?php echo $index;?>');"
                class="main_button<?php echo $index;?>"
                >
            &nbsp;
            </div>
            <?php
        }else{echo "&nbsp;";}
    }
   
    function addbutton($char, $action = '', $index)
    {
        global $keupad_button_width;
        if($action == '')
        {
            $action = "javascript: addchar(".$char.");";
        }
        ?>
        <div
            onclick = "<?php echo $action;?>"
            ondblclick = "<?php echo $action;?>"
            onmousedown = "javascript: m_down(this, <?php echo "'$char', '$index'";?>);"
            onmouseup = "javascript: m_up(this, <?php echo "'$char', '$index'";?>);"
            onmouseout = "javascript: m_up(this, <?php echo "'$char', '$index'";?>);"
            class = "digitbutton<?php echo $char; ?>">
        </div>
        <?php
    }

    function DateDiff($interval,$date1,$date2)
    {
        // получает количество секунд между двумя датами
        $timedifference = $date2 - $date1;
        switch ($interval)
        {
            case 'w':
                $retval = bcdiv($timedifference,604800);
                break;
            case 'd':
                $retval = bcdiv($timedifference,86400);
                break;
            case 'h':
                $retval = bcdiv($timedifference,3600);
                break;
            case 'n':
                $retval = bcdiv($timedifference,60);
                break;
            case 's':
                $retval = $timedifference;
                break;
        }
        return $retval;
    }

    function BeautifulWeekDayName($date)
    {
        $DaysOfWeek = array("Вс", "Пн", "Вт", "Ср", "Чт", "Пт", "Сб"); 
        $arr = getdate($date);
        return $DaysOfWeek[$arr['wday']];
    }

    function beautifulDate($date, $showYear = true, $short = false)
    {
        $months = array("Января","Февраля","Марта","Апреля","Мая","Июня","Июля","Августа","Сентября","Октября","Ноября","Декабря");
        $months2 = array("янв","фев","мар","апр","мая","июн","июл","авг","сен","окт","ноя","дек");
        if($short){$months=$months2;}
        $day = date("j", $date);
        $month = date("n", $date);
        $mth = $months[$month-1];
        $year = date("Y", $date);
        $ret = $day." ".$mth;
        if($showYear){$ret .= " ".$year;}
        return $ret;
    }

    function DateAdd($interval, $number, $date)
    {
        $date_time_array = getdate($date);
        $hours = $date_time_array['hours'];
        $minutes = $date_time_array['minutes'];
        $seconds = $date_time_array['seconds'];
        $month = $date_time_array['mon'];
        $day = $date_time_array['mday'];
        $year = $date_time_array['year'];
        switch ($interval) {
        case 'yyyy':
        $year+=$number;
        break;
        case 'q':
        $year+=($number*3);
        break;
        case 'm':
        $month+=$number;
        break;
        case 'y':
        case 'd':
        case 'w':
        $day+=$number;
        break;
        case 'ww':
        $day+=($number*7);
        break;
        case 'h':
        $hours+=$number;
        break;
        case 'n':
        $minutes+=$number;
        break;
        case 's':
        $seconds+=$number; 
        break; 
        }
        $timestamp= mktime($hours,$minutes,$seconds,$month,$day,$year);
        return $timestamp;
    }

    function startttable($color="F0F0F0")
    {
        ?>
        <DIV id="rounded-box-3" style="border: 1px;">
            <SPAN>
                <b class="r5" style="background-color: <?php echo $color;?>;"></b>
                <b class="r3" style="background-color: <?php echo $color;?>;"></b>
                <b class="r2" style="background-color: <?php echo $color;?>"></b>
                <b class="r1" style="background-color: <?php echo $color;?>"></b>
                <b class="r1" style="background-color: <?php echo $color;?>"></b>
                <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" class="inner-box" style="background-color: <?php echo $color;?>">
                    <TR>
                        <TD valign="top">
        <?php
    }

    function endttable($color="F0F0F0")
    {
        ?>
                        </TD>
                    </TR>
                </TABLE>
                <b class="r1" style="background-color: <?php echo $color;?>"></b>
                <b class="r1" style="background-color: <?php echo $color;?>"></b>
                <b class="r2" style="background-color: <?php echo $color;?>"></b>
                <b class="r3" style="background-color: <?php echo $color;?>"></b>
                <b class="r5" style="background-color: <?php echo $color;?>"></b>
            </SPAN>
        </DIV>
        <?php
    }

    function echolink($adr, $caption, $localpath)
    {
      $curpage = $_SERVER["SCRIPT_NAME"];
      if($curpage == $localpath)
      {
        echo "<span class='selectedlink'>".$caption."</span>";
      }
      else
      {
        ?><a href="<?php echo $adr;?>"><?php echo $caption;?></a><?php
      }
    }

    function startxwindow($caption, $style = "")
    {
        echo sprintf('{{nicewindow style="%s" caption=""}}', $style);
        /*
        $color = "#9bd4ed";
        $folder = constant('SM_TEMPLATE_WWW')."images/x_elements/x_window".$style."/";
        if($style=="_green"){$color="#b8efb8";}
        if($style=="_silver"){$color="#d0d0d0";}
        ?>
        <DIV style="background-color: <?php echo $color;?>">
        <DIV style="background: url(<?php echo $folder;?>win4.png) repeat-y 0 0;">
        <DIV style="background: url(<?php echo $folder;?>win8.png) repeat-x 0 bottom;">
        <DIV style="background: url(<?php echo $folder;?>win6.png) repeat-y right 0;">
        <DIV style="background: url(<?php echo $folder;?>win2.png) repeat-x 0 0;">
        <DIV style="background: url(<?php echo $folder;?>win1.png) no-repeat 0 0;">
        <DIV style="background: url(<?php echo $folder;?>win3.png) no-repeat right 0;">
        <DIV style="background: url(<?php echo $folder;?>win7.png) no-repeat 0 bottom;">
        <DIV style="background: url(<?php echo $folder;?>win9.png) no-repeat right bottom;">
        <TABLE cellspacing="0" border="0" cellpadding="0" width="100%">
        <TR><TD height="42" style="padding-top: 11pt; padding-left: 20px; padding-bottom: 11px; height: 42px; color: 808080;" valign="MIDDLE"><h3 style="margin: 0;"><font color="white"><?php echo $caption;?></font></h3></TD></TR>
        <TR><TD height="*" valign="top" style="padding: 20px; padding-top: 0; color: 0; ">
        <?php
        */
    }

    function endxwindow()
    {
        echo '{{nicewindow}}';
        /*
        return null;
        ?>
        </TD></TR>
        </TABLE>
        </DIV></DIV></DIV></DIV></DIV></DIV></DIV></DIV></DIV>
        <?php
        */
    }

    function file_get_contentsEx($filename)
    {
        $content = '';
        try
        {
            $content = @file_get_contents($filename);
        }
        catch(Exception $ex)
        {
            //echo "error!";
        }
        return $content;
    }
    
    function ErrorConnectToService()
    {
        global $patient;
        header("Location: index.php?recode=".$patient->id."&errortext=".urlencode("Сервис временно недоступен. Попробуйте через минуту."));
    }

?>